Traditionally, personal computers include combinations of operating systems, applications, and user settings, each of which is managed individually by owners or administrators on an ongoing basis. However, many organizations are now using desktop virtualization to provide a more flexible option to address the varying needs of their users. In desktop virtualization, a user's computing environment (e.g., operating system, applications, and/or user settings) may be separated from the user's physical computing device (e.g., smartphone, laptop, desktop computer). Using client-server technology, a “virtualized desktop” may be stored in and administered by a remote server, rather than in the local storage of the client computing device.
There are several different types of desktop virtualization systems. As an example, Virtual Desktop Infrastructure (VDI) refers to the process of running a user desktop inside a virtual machine that resides on a server. VDI and other server-based desktop virtualization systems may provide personalized desktops for each user, while allowing for centralized management and security. Servers in such systems may include storage for virtual desktop images and system configuration information, as well as software components to provide the virtual machines and allow users to interconnect to them. For example, a VDI server may include one or more hypervisors (virtual machine managers) to create and maintain multiple virtual machines, software to manage the hypervisor(s), a connection broker, and software to provision and manage the virtual desktops.
Desktop virtualization systems may be implemented using a single virtualization server or a combination of servers interconnected as a server grid. For example, a cloud computing environment, or cloud system, may include a pool of virtualization servers, storage disks, networking hardware, and other physical resources that may be used to provision and execute virtual machines, along with additional computing devices to provide management and customer portals for the cloud system. Cloud systems may create and manage virtual machines for customers over a network, providing remote customers with computational resources, data storage services, networking capabilities, and computer platform and application support. For example, a customer in a cloud system may request the creation of one or more virtual machines having specified capabilities (e.g., processor capacity, disk storage, bandwidth). Within the cloud system, a resource manager may select virtualization servers (or host servers) to host the new virtual machines, and may provision and create the new virtual machines using the resources of the host servers and other physical resources within the cloud computing environment (e.g., storage disks, network devices).